package com.crm.common.crm.entity.PO;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.crm.common.ka.core.feign.examine.entity.ExamineRecordSaveBO;
import com.crm.common.ka.core.servlet.upload.FileEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("bill_crm_putin_money")
@ApiModel(value="CrmPutinMoney对象", description="投放金额表")
public class CrmPutinMoney implements Serializable {

    private static final long serialVersionUID=1L;


    @TableId(value = "putin_money_id", type = IdType.AUTO)
    private Integer putinMoneyId;

    @ApiModelProperty(value = "投放平台")
    private String putinPlatform;

    @ApiModelProperty(value = "大类")
    private int categories;

    @ApiModelProperty(value = "电商/手绘")
    private String category;

    @ApiModelProperty(value = "投放金额")
    private BigDecimal putinMoney;

    @ApiModelProperty(value = "截图名称")
    private String fileName;

    @ApiModelProperty(value = "消耗金额")
    private BigDecimal practicalPutinMoney;

    @ApiModelProperty(value = "课程期数")
    private String coursePeriods;

    @ApiModelProperty(value = "投放日期")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date putinDate;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "渠道赔付金额")
    private BigDecimal putinCompensateMoney;

    @ApiModelProperty(value = "渠道返点金额")
    private BigDecimal putinRebatesMoney;

    @ApiModelProperty(value = "表单录入时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date putinFormDate;

    @ApiModelProperty(value = "录入人")
    private String putinUserId;

    @ApiModelProperty(value = "审核状态:0待审核、1通过、2拒绝、3审核中 4:撤回 5 未提交")
    private Integer checkStatus;

    @ApiModelProperty(value = "审核记录ID")
    private Integer examineRecordId;

    @ApiModelProperty("审批数据")
    private ExamineRecordSaveBO examineFlowData;

    @ApiModelProperty(value = "ROI编号")
    private String number;

    @ApiModelProperty(value = "录入人姓名")
    private String putinUserName;

    @ApiModelProperty(value = "渠道转入金额")
    private BigDecimal rollinMoney;

    @ApiModelProperty(value = "渠道转出金额")
    private BigDecimal rolloutMoney;

    @ApiModelProperty(value = "余额")
    private BigDecimal balance;

    @ApiModelProperty(value ="打款截图")
    private String batchId;

    @ApiModelProperty(value = "附件名称")
    private String name;

    @ApiModelProperty(value = "附件大小")
    private Integer size;

    @ApiModelProperty(value = "创建人")
    private String createUser;

    @ApiModelProperty(value = "URL")
    private String url;

    @ApiModelProperty(value = "文件类型")
    private String fileType;

    @ApiModelProperty(value = "文件ID")
    private String fileId;

    @ApiModelProperty(value = "线索batchId")
    private String leadsBatch;

    @ApiModelProperty(value = "线索投放平台")
    private String leadsValue;

    @ApiModelProperty(value = "合同数量")
    private Integer contractNum;

    @ApiModelProperty(value = "合同已回款金额")
    private BigDecimal contractReturnMoney;

    @ApiModelProperty(value = "已成交合同的全部金额")
    private BigDecimal allMoney;

    @ApiModelProperty(value = "本渠道所有合同的全部金额")
    private BigDecimal channelContractMoney;

    @ApiModelProperty(value = "已审核通过的回款金额")
    private BigDecimal returnOkMoney;

    @ApiModelProperty(value = "本渠道所有审核通过的回款金额")
    private BigDecimal channelReturnMoney;

    @ApiModelProperty(value = "实际消耗金额")
    private BigDecimal actualMoney;

    @ApiModelProperty(value = "文件对象")
    private List<FileEntity> fileList;

    @ApiModelProperty(value = "渠道充值金额合计")
    private BigDecimal putinMoneySum;

    @ApiModelProperty(value = "渠道消耗金额合计")
    private BigDecimal practicalPutinMoneySum;

    @ApiModelProperty(value = "渠道返点金额合计")
    private BigDecimal putinRebatesMoneySum;

    @ApiModelProperty(value = "渠道赔付金额合计")
    private BigDecimal putinCompensateMoneySum;

    @ApiModelProperty(value = "转入金额合计")
    private BigDecimal rollinMoneySum;

    @ApiModelProperty(value = "转出金额合计")
    private BigDecimal rolloutMoneySum;

    @ApiModelProperty(value = "创建人")
    private String creatUserId;

    @ApiModelProperty(value = "所在部门Id")
    private Integer deptId;

    @ApiModelProperty(value = "部门名称")
    private String deptName;

    @ApiModelProperty(value = "表单数")
    private Integer formNum;

    @ApiModelProperty(value = "均价")
    private BigDecimal avgPrice;


}
